package com.mzx.javase.集合;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 类描述：List接口的常用方法
 *
 * @ClassName ListTest01
 * @Description TODO
 * @Author 69417
 * @Date 2022/7/2 14:05
 * @Version 1.0
 */
public class ListTest01 {
    /*
     * List作为Collection集合的子接口，不但继承了Collection接口中的全部方法，而且还增加了一些根据元素索引来操
     * 作集合的特有方法，如下：
     * public void add(int index, E element) : 将指定的元素，添加到该集合中的指定位置上。2 14:10
     * public E get(int index) :返回集合中指定位置的元素。
     * public E remove(int index) : 移除列表中指定位置的元素, 返回的是被移除的元素。
     **/
    public static void main(String[] args) {
        List<String> list = new ArrayList();
        list.add("张三");
        list.add("里斯");
        list.add("wangwu");
        String s = list.get(0);
        System.out.println(s);
        System.out.println("移除的元素为："+ list.remove(0));
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
            System.out.println(next);
        }
        //面试题：arraylist和linkedlist的区别
        /*
        1、ArrayList是基于动态数组的集合。LinkedList是基于链表的集合。
        2、对于访问元素速度来说，ArrayList要优于LinkedList，ArrayList底层是数组，有初始位置和元素下标，可以快速定位到某一个元素，而LinkedList
        通过遍历元素来获取某一个而元素，效率较低。ArrayList允许保存所有元素，包括null，并可以根据索引位置对集合进行快速访问；对于随机访问集合中的对象，
        使用LinkedList类实现List集合的效率较低。
        3、ArrayList向集合中指定位置插入对象或者删除元素的速度较慢；LinkedList需要向集合中插入和删除对象时，使用LinkedList集合的效率较高。
        */
    }
}
